package main

import (
	"log"
	"net/http"

	"github.com/gin-gonic/gin"
)

func Callbak(c *gin.Context) {
	clientIP := c.ClientIP()

	var req map[string]interface{}
	if err := c.ShouldBindJSON(&req); err != nil {
		log.Printf("❌ 回调解析失败: %v 来自 IP: %s\n", err, clientIP)
		c.JSON(http.StatusBadRequest, gin.H{
			"status": "faild",
			"msg":    "invalid json",
		})
		return
	}

	log.Printf("✅ 回调成功 → 来自 %s | 数据: %v\n", clientIP, req)

	c.JSON(http.StatusOK, gin.H{
		"status": "Success成功",
		"msg":    "服务回调成功",
	})
}

func callbak(r *gin.Engine) {
	api := r.Group("/api/v1")
	{
		api.POST("/callbak", Callbak)
	}
}

func main() {
	r := gin.Default()

	callbak(r)

	log.Println("🚀 模拟回调服务启动在 :9091")
	if err := r.Run(":9091"); err != nil {
		log.Fatalf("❌ 启动失败: %v", err)
	}
}
